La base de datos que se va a emplear para proyectar el número de vehículos a registrar en el Registro Único Nacional de Tránsito, RUNT contiene un registro del número de vehículos que han sido registrados diariamente entre el primero de enero de 2012 (2012-01-01) y el 31 de diciembre de 2017 (2017-12-31), lo que implica que parte con solo dos variables: la fecha y el número de vehículos registrados en el RUNT en cada fecha, con 2,192 observaciones que abarcan la totalidad de días que transcurrieron entre las dos fechas límite. Así, vale la pena comenzar observando la estructura de la base de datos que va a ser empleada:
| Característica | Tipo | Primera observación | Segunda observación |
|---|---|---|---|
| Fecha | Fecha (dttm) | 2012-01-01 | 2012-01-02 |
| Unidades | Doble (dbl) | 0 | 188 |
Y se puede observar que es una base de datos bastante simple, pues simplemente incluye las fechas y el respectivo número de vehículos que han sido registrados en el RUNT. Además, es bueno destacar que esta cuenta con dos columnas, una para cada una de las características recién discutidas, y 2,192 filas, una por cada observación, es decir, por cada día.
Luego, vale la pena revisar el siguiente gráfico con el que se podrá observar la generalidad del número de vehículos registrados por día en el RUNT:
De este gráfico se pueden destacar varias cosas. La primera de ellas es que la venta de vehículos presenta con bastante frecuencias días con cero registros nuevos, aspecto que se indagará más adelante. Asimismo, parece que las ventas medias se preservan en la mayor parte del año, con un pequeño pico al finalizar el primer trimestre y otro más destacado finalizando el año. Asimismo, se puede ver que el número de vehículos registrados en el RUNT parece tener un decenso a partir del año 2016, pues antes de este año es frecuente que se superasen los mil carros registrados por día, toda vez que a partir de este año esto pasa a ser menos frecuente. Así, considerando estos datos, se obtienen los siguientes resúmenes numéricos para el número de vehículos registrado por día:
| Parámetro | Valor |
|---|---|
| Media | 782.17 |
| Desviación estándar | 551.16 |
| Mínimo | 0 |
| Primer cuantil (Q1) | 293 |
| Mediana (Q2) | 865.5 |
| Tercer cuantil (Q3) | 1,173 |
| Máximo (Q4) | 3,603 |
| Rango intercuartídico | 880 |
| Coeficiente de variación | 0.7 |
| Coeficiente de asimetría | 0.05 |
| Curtosis | 0.35 |
Como se observa, cada día entre los años 2012 y 2017 (inclusive) se registraron 782.17 vehículos en el RUNT en promedio, con una desviación estándar de 551.16 vehículos por día, y presentando un mínimo en cero vehículos por día (lo cual sucede durante varios días como se podrá verificar más adelante), y un máximo de 3,603 vehículos, lo cual ocurrió el 29 de diciembre del 2016. Además, se tiene que la mediana se da en 865.5 vehículos, lo que quiere decir que en al menos la mitad de los días del periodo mencionado se registraron 366 vehículos o más, y en el resto de días 365 vehículos o menos. Por último, se debe destacar que el coeficiente de variación es de 0.7 (70%), lo que muestra que el promedio no es representativo del conjunto de datos; asimismo, el coeficiente de asimetría es de 0.05, lo cual muestra que los datos están concentrados hacia el promedio de 782.17 vehículos registrados por día en el RUNT, pero con una ligera tendencia hacia un menor número de registros diarios, toda vez que la curtosis de 0.35, lo que implica que la distribución presenta una menor cantidad de datos atípicos comparado con una distribución normal y una mayor concentración alrededor de su media. Esto se ilustra bien mediante el siguiente gráfico:
Como se aprecia, lo más frecuente es que en un día se inscriban en el RUNT entre cero y 124 vehpiculos aproximadamente, ya que esto sucedió en 422 de los 2,192 días que abarca el periodo de interés, seguido por entre 746 y 870 vehículos por día, pues en 239 días se registraron un número de vehículos incluido en tal intervalo. De la misma forma, destaca el hecho de que hay pocos días que tengan dos mil o más vehículos registrados por día.
Ahora bien, con el objetivo de entender mejor la dinámica del registro de vehículos en el RUNT, es útil observar el comportamiento por mes, año, semana y día de la semana, para lo cual se van a crear tales variables auxiliares con ayuda de \(\color{blue}{\textsf{R}}\), lo cual deja la estructura de la base de datos como sigue:
| Característica | Tipo | Primera observación | Segunda observación |
|---|---|---|---|
| Fecha | Fecha (dttm) | 2012-01-01 | 2012-01-02 |
| Unidades | Doble (dbl) | 0 | 188 |
| Día | Entero (int) | 1 | 2 |
| Mes | Doble (dbl) | 1 | 1 |
| Año | Doble (dbl) | 2012 | 2012 |
| Día de la semana | Doble (dbl) | 1 | 2 |
| Semana del año | Doble (dbl) | 1 | 1 |
Y con esto, se va a revisar el comportamiento por mes entre el 2012 y el 2017 (inclusive) del registro de vehículos en el RUNT mediante la siguiente serie de tiempo:
Y como se puede observar, no se puede hablar de que haya una cantidad semejante de vehículos vendidos por mes, ya que en cada año se puede observar que hay una tendencia a la baja al iniciar en el año, pues en cada uno de los meses de enero hay un mínimo de vehículos registrados en el RUNT para sus respectivos años, ocurriendo luego un incremento hacia los meses de marzo, abril y mayo para mantenerse en niveles semejantes hasta que se presenta un máximo en el mes de diciembre, siendo el más destacado el del año 2014, ya que en dicho diciembre se registraron 40,518 vehículos. Así mismo, se evidencia nuevamente una tendencia bajista en el comportamiento global, ya que hay un menor número de registros hacia los años 2018 y 2017 comparado con los demás, siendo 2014 el año con mejores registros, como se verá más adelante. Ahora, se va a analizar el número de vehículos registrados por mes sin importar el año.
Y se observa algo que fue confirmado previamente y es que diciembre es el mes con más registros diarios en el RUNT, toda vez que enero es el que menos. Asimismo, se observa que en el resto de meses se estabiliza aproximadamente el registro con al menos de 15,000 registros por mes, siendo febrero y una excepción probablemente por una recuperación luego del mínimo de enero.
Con el fin de generar un modelo de predicción de vehículos registrados en el RUNT durante en el 2018, se van a crear algunas variables adicionales que podrían incidir positivamente en la forma en la que los diferentes modelos a plantear trabajar. Se debe tener en cuenta que lo buenas que resulten dichas variables solo será descubierto una vez se generen los diferentes modelos.
Colombia es un país con un débil aparato productivo de vehículos, lo cual se refleja en que en el 2019 se produjeron solo 127,541 vehículos en Colombia (lo cual resulta bajo comparado con los más de 3.9 millones de vehículos fabricados en México) y que contraste con los 223,755 vehículos de uso particular que fueron vendidos en el país durante el mismo año [1]. En ese sentido, es fundamental para abastecer la demanda de vehículos del país buscar en los mercados internacionales tales vehículos, y así, teniendo en cuenta que estas operaciones se tranzan generalmente dólares estadounidenses (USD), se puede considerar el precio de esta divisa en cada día, para lo cual resulta útil consultar el histórico de la tasa representativa del mercado (TRM) calculado por el Banco de la República al final de cada día [2].
Para poder identificar patrones estacionarios y otros asociados con el tiempo, se van a crear las siguientes variables:
La mayoría de puntos del país donde es posible realizar un registro al RUNT solo operan en días laborales, es decir, entre el lunes y el sábado de cada semana, con la excepción de aquellos días que sean festivos, por lo que es importante identificar dichos días para que el modelo pueda incorporarlos y trabajar con ellos. Nótese que es de utilidad tener en consideración los días festivos y los domingos simultáneamente en una sola variable, ya que tenerlas separadas podría implicar una redundancia.
Realizado lo anterior, se tiene que la tabla de datos que finalmente será considerada para poder estudiar los diferentes modelos predictivos que permitan dar con una adecuada proyección del número de vehículos registrados en el RUNT para todo el 2018 es la que se ve enseguida:
Para poder emplear el modelo con las variables requeridas del año, se va a generar una base de datos con ayuda de \(\color{blue}{\textsf{R}}\) que permita determinar los valores de las variables regresoras para cada uno de los 365 días de este año. El resultado observado puede ser visto a continuación:
Un archivo en formato .RData puede ser encontrado en el repositario de Git-Hub de este trabajo bajo el nombre yr2018.RData.
A continuación se van a implentar diferentes técnicas de aprendizaje automático para realizar regresiones que permitan predecir la cantidad de vehículos que van a ser registrados diariamente en el RUNT. En la mayoría de ellos se va a apelar al paquete \(\color{purple}{\texttt{caret}}\) del software de programación especializado en estadística \(\color{blue}{\textsf{R}}\), el cual permite de forma sencilla implementar los diferentes modelos y verificarlos usando cross validation, que, en particular, será aplicado empleando diez iteraciones.
## Loading required package: lattice
##
## Attaching package: 'caret'
## The following object is masked from 'package:purrr':
##
## lift
Se va a comenzar analizando un modelo de regresión lineal múltiple, para el cual se obtiene el siguiente resumen:
| Unidades | |||
|---|---|---|---|
| Predictors | Estimates | CI | p |
| (Intercept) | 52718.81 | 3553.45 – 101884.17 | 0.036 |
| dia | -3.86 | -12.47 – 4.74 | 0.379 |
| mes | -484.72 | -740.00 – -229.45 | <0.001 |
| anno | -26.00 | -50.49 – -1.50 | 0.038 |
| dia semana | -54.24 | -65.28 – -43.19 | <0.001 |
| semana | 115.80 | 57.07 – 174.52 | <0.001 |
| TRM | -0.05 | -0.13 – 0.02 | 0.176 |
| Laboral | 1131.91 | 1075.53 – 1188.29 | <0.001 |
| Observations | 1644 | ||
| R2 / R2 adjusted | 0.568 / 0.566 | ||
Como se puede observar, el valor del \(R^2\) que se obtiene para este modelo es de \(R^2 = 0.5682\), y la versión ajustada es \(R^2_{adj} = 0.5663\), los cuales son valores regulares que van a tratar de ser mejorados de cara al modelo que finalmente sea empleado. Sin embargo, debe tenerse en cuenta que la regres
Se va a emplear el método de los k vecinos más cercanos, conocido como KNN por sus siglas en inglés (k nearest neighbors), y esto será realizado en dos etapas: la primera de ellas ignorando el preprocesamiento, es decir, usando los datos puros sin ninguna especie de modificación y luego preprocesándolos, lo cual implica que se los va a ajustar de acuerdo a sus medias y varianzas.
Un resumen de los resultados de este modelo empleando \(k = 5, 7, 9\) vecinos es el que se observa en la siguiente tabla:
| Núm. vecinos (k) | RMSE | \(R^2\) | MAE |
|---|---|---|---|
| 5 | 551.4903 | 0.06591 | 44.2648 |
| 7 | 552.5287 | 0.0545 | 451.6000 |
| 9 | 54.2284 | 0.0522 | 451.3888 |
Y como se puede ver, para tres valores diferentes del número de vecinos a considerar, se obtienes valores de \(R^2\) bastante bajos, lo cual impide que las variables regresoras consideradas sean útiles para explicar la variabilidad de la variable unidades, que es la que quiere ser predicha para cada día del 2018, lo cual lleva a que este modelo sea descartado inmediatamente.
Al realizar un preprocesamiento, el cual implica estandarizar los datos de acuerdo a sus medias y sus varianzas, se obtienen los siguientes resultados para \(k = 5, 7, 9\).
| Núm. vecinos (k) | RMSE | \(R^2\) | MAE |
|---|---|---|---|
| 5 | 237.9352 | 0.8176 | 151.4622 |
| 7 | 244.9491 | 0.8068 | 157.2997 |
| 9 | 249.8848 | 0.7999 | 161.5048 |
Y se evidencia una notable mejoría que en el caso en el que el preprocesamiento no fue realizado, pues para cada una de las tres iteraciones evaluadas (\(k = 5, \ 7, \ 9\)), se obtuvieron valores de \(R^2\) de al menos \(0.80\), lo cual es bueno. Sin embargo, es interesante evaluar si es posible mejorar estos valores al ensayar aún más iteraciones, para lo cual se generará un grilla que posibilite evaluar valores de \(k\) entre uno y cien.
Y como se puede observar en la tabla anterior, los mejores valores para el número de vecinos a considerar, basados en el \(R^2\) son \(k = 4\) y \(k = 5\), pues hay un empate con esta métrica. No obstante, al considerar las otras dos métricas: RMSE y MSE, los cuales entre más bajos mejores son, se determina que el número óptimo de vecinos a considerar es \(k = 4\). A continuación se observa un gráfico que permite visualizar el valor de la raíz del error cuádratico medio como función del número de vecinos empleado.
[1] PROCOLOMBIA. “Industria automotriz en Colombia”. Procolombia. https://www.colombiatrade.com.co/noticias/industria-automotriz-en-colombia (accedido el 8 de enero de 2022).
[2] Banco de la República de Colombia. “Tasa representativa del mercado (TRM - peso por dólar)”. Banco de la República. https://www.banrep.gov.co/es/estadisticas/trm (accedido el 8 de enero de 2022).